package com.sjh.lib_update



import com.sjh.baseutils.toast


data class UpDateRequest<T>(
    var success:Boolean, //成功true//失败false
    var message: String? = null,//消息提示，可能为空
    var code: String = "",//状态码
    var data: T? = null//可能为空，该值是返回的数据，可能是数组也可能是对象

) {
    /**
     * 是否成功
     */
    val isSuccess
        get() = code == "200"

    fun success(data: (data: T?) -> Unit = {}) {
        when (code) {
            "200" -> data(this.data)
        }
    }

    /**
     * @see
     * @param err 如果code是3系列的错误码的时候会执行
     * @param data 脱壳后的数据
     */
    fun dispose(
        err: (msg:String?) -> Unit = { it?.toast() }, //code为4xxx错误码时回调
        data: (data: T?) -> Unit = {}//请求成功并且有数据返回 时回调
    ) {
        when (code) {
            "200" -> data(this.data)
        }
    }
}